#!/bin/bash

# 微信分发阅读平台 - 完整部署包构建脚本
# 作者: MiniMax Agent
# 版本: v1.0.0

set -e

# 颜色定义
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m'

print_message() {
    echo -e "${GREEN}[INFO] $1${NC}"
}

print_warning() {
    echo -e "${YELLOW}[WARN] $1${NC}"
}

print_error() {
    echo -e "${RED}[ERROR] $1${NC}"
}

print_header() {
    echo -e "${BLUE}"
    echo "=============================================="
    echo "🚀 微信分发阅读平台 - 完整部署包"
    echo "=============================================="
    echo -e "${NC}"
}

# 检查文件完整性
check_files() {
    print_message "检查项目文件完整性..."
    
    local required_files=(
        "wechat_reading_crawler.js"
        "config.json"
        "package.json"
        "README.md"
        "QUICK_START.md"
        "GITEE_DEPLOY.md"
        "install.sh"
        "ql_install.sh"
        "install.bat"
        "start.sh"
        "Dockerfile"
        ".gitignore"
    )
    
    local missing_files=()
    for file in "${required_files[@]}"; do
        if [ ! -f "$file" ]; then
            missing_files+=("$file")
        fi
    done
    
    if [ ${#missing_files[@]} -gt 0 ]; then
        print_error "缺少必要文件:"
        for file in "${missing_files[@]}"; do
            echo "  - $file"
        done
        exit 1
    fi
    
    print_message "文件完整性检查通过"
}

# 生成文件列表
generate_file_list() {
    print_message "生成文件列表..."
    
    cat > FILE_LIST.md << 'EOF'
# 微信分发阅读平台 - 文件清单

## 核心文件

- `wechat_reading_crawler.js` - 主脚本文件 (515行)
- `config.json` - 配置文件
- `package.json` - Node.js依赖配置

## 启动和安装脚本

- `start.sh` - 标准启动脚本
- `install.sh` - 通用一键拉库脚本
- `ql_install.sh` - 青龙面板专用安装脚本
- `install.bat` - Windows批处理安装脚本

## 文档文件

- `README.md` - 详细使用文档
- `QUICK_START.md` - 快速开始指南
- `GITEE_DEPLOY.md` - Gitee部署指南

## 部署文件

- `Dockerfile` - Docker容器配置
- `.gitignore` - Git忽略文件配置

## 生成文件

运行脚本后会在当前目录生成以下文件：

- `wechat_data.json` - 用户数据和执行记录
- `qrcode.png` - 登录二维码图片
- `error.log` - 错误日志文件
- `ql_tasks_config.txt` - 青龙面板任务配置

## 文件大小统计

```bash
# 查看文件大小
ls -lh *.js *.json *.md *.sh *.bat
```
EOF
    
    print_message "文件列表已生成: FILE_LIST.md"
}

# 创建Gitee仓库
create_gitee_repo() {
    print_message "创建Gitee仓库..."
    
    local repo_url="https://17503995945:Giteelaowang@gitee.com/17503995945/wechat-reading-platform.git"
    
    # 尝试推送到Gitee
    if git push -u origin master 2>/dev/null; then
        print_message "✅ 仓库推送成功"
        echo ""
        echo "🔗 Gitee仓库地址: https://gitee.com/17503995945/wechat-reading-platform.git"
        echo ""
    else
        print_warning "⚠️ 自动推送失败，请手动创建Gitee仓库"
        echo ""
        echo "📋 手动创建步骤:"
        echo "1. 访问 https://gitee.com"
        echo "2. 登录账号: 17503995945"
        echo "3. 密码: Giteelaowang"
        echo "4. 点击'新建仓库'"
        echo "5. 仓库名: wechat-reading-platform"
        echo "6. 选择'开源'和'JavaScript'"
        echo "7. 创建后执行: git push -u origin master"
        echo ""
    fi
}

# 测试脚本功能
test_script() {
    print_message "测试脚本功能..."
    
    # 语法检查
    if node -c wechat_reading_crawler.js; then
        print_message "✅ JavaScript语法检查通过"
    else
        print_error "❌ JavaScript语法检查失败"
        return 1
    fi
    
    # JSON格式检查
    if node -e "JSON.parse(require('fs').readFileSync('config.json', 'utf8'))"; then
        print_message "✅ JSON配置文件格式正确"
    else
        print_error "❌ JSON配置文件格式错误"
        return 1
    fi
    
    print_message "脚本功能测试通过"
}

# 生成使用统计
generate_stats() {
    print_message "生成项目统计信息..."
    
    local file_count=$(find . -type f -name "*.js" -o -name "*.json" -o -name "*.md" -o -name "*.sh" -o -name "*.bat" -o -name "Dockerfile" | wc -l)
    local line_count=$(find . -type f \( -name "*.js" -o -name "*.json" -o -name "*.md" -o -name "*.sh" -o -name "*.bat" -o -name "Dockerfile" \) -exec wc -l {} + | tail -1 | awk '{print $1}')
    
    cat > PROJECT_STATS.md << EOF
# 项目统计信息

## 文件统计
- 总文件数: $file_count
- 总代码行数: $line_count
- 主脚本行数: $(wc -l < wechat_reading_crawler.js)
- 文档总行数: $(find . -name "*.md" -exec wc -l {} + | tail -1 | awk '{print $1}')

## 功能特性
- ✅ 微信登录自动化
- ✅ 内容获取和处理
- ✅ 任务执行自动化
- ✅ 奖励信息收集
- ✅ 定时任务支持
- ✅ 错误处理和重试
- ✅ 多平台一键拉库
- ✅ 青龙面板集成

## 安装方式
- Linux/macOS: \`./install.sh\`
- Windows: \`install.bat\`
- 青龙面板: \`ql_install.sh\`
- 在线拉库: \`bash -c "\$(curl -fsSL ...)\"\`

## 支持的环境
- Node.js 14.0+
- 青龙面板 2.14+
- Docker (可选)
- 跨平台 (Windows/Linux/macOS)

生成时间: $(date)
版本: v1.0.0
EOF
    
    print_message "统计信息已生成: PROJECT_STATS.md"
}

# 显示完成信息
show_completion_info() {
    echo ""
    echo -e "${GREEN}=============================================="
    echo "🎉 微信分发阅读平台部署包构建完成!"
    echo "==============================================${NC}"
    echo ""
    echo -e "${BLUE}📋 项目信息:${NC}"
    echo "  项目名称: 微信分发阅读平台自动化脚本"
    echo "  版本号: v1.0.0"
    echo "  开发者: MiniMax Agent"
    echo "  创建时间: $(date)"
    echo ""
    echo -e "${BLUE}📁 项目文件:${NC}"
    echo "  核心脚本: wechat_reading_crawler.js"
    echo "  安装脚本: install.sh / ql_install.sh / install.bat"
    echo "  配置文件: config.json"
    echo "  文档文件: README.md / QUICK_START.md / GITEE_DEPLOY.md"
    echo ""
    echo -e "${BLUE}🚀 快速部署:${NC}"
    echo "  1. 通用安装: ./install.sh"
    echo "  2. 青龙专用: ./ql_install.sh"
    echo "  3. Windows版: install.bat"
    echo "  4. 在线拉库: bash -c \"\$(curl -fsSL ...)\""
    echo ""
    echo -e "${BLUE}🔗 Gitee仓库:${NC}"
    echo "  地址: https://gitee.com/17503995945/wechat-reading-platform.git"
    echo "  状态: $(if [ -d .git ]; then echo "已初始化"; else echo "未推送"; fi)"
    echo ""
    echo -e "${BLUE}📞 技术支持:${NC}"
    echo "  平台客服: QQ 3802451151"
    echo "  开发者: MiniMax Agent"
    echo ""
    echo -e "${YELLOW}💡 使用建议:${NC}"
    echo "  1. 首次使用请先阅读 README.md"
    echo "  2. 快速入门参考 QUICK_START.md"
    echo "  3. Gitee部署参考 GITEE_DEPLOY.md"
    echo "  4. 支持青龙面板自动集成"
    echo ""
}

# 主函数
main() {
    print_header
    
    # 步骤1: 检查文件完整性
    check_files
    
    # 步骤2: 生成文件列表
    generate_file_list
    
    # 步骤3: 创建Gitee仓库
    create_gitee_repo
    
    # 步骤4: 测试脚本功能
    test_script
    
    # 步骤5: 生成项目统计
    generate_stats
    
    # 步骤6: 显示完成信息
    show_completion_info
}

# 帮助信息
show_help() {
    echo "微信分发阅读平台 - 部署包构建脚本"
    echo ""
    echo "用法: $0 [选项]"
    echo ""
    echo "选项:"
    echo "  -h, --help     显示帮助信息"
    echo "  -v, --version  显示版本信息"
    echo "  -c, --check    仅检查文件完整性"
    echo "  -t, --test     仅运行功能测试"
    echo ""
    echo "示例:"
    echo "  $0                    # 完整构建"
    echo "  $0 --check           # 仅检查文件"
    echo "  $0 --test            # 仅功能测试"
    echo ""
}

# 版本信息
show_version() {
    echo "微信分发阅读平台 - 部署包构建脚本"
    echo "版本: v1.0.0"
    echo "作者: MiniMax Agent"
    echo "日期: 2025-11-06"
}

# 参数处理
case "${1:-}" in
    "-h"|"--help")
        show_help
        exit 0
        ;;
    "-v"|"--version")
        show_version
        exit 0
        ;;
    "-c"|"--check")
        check_files
        exit 0
        ;;
    "-t"|"--test")
        test_script
        exit 0
        ;;
    "")
        main
        ;;
    *)
        echo "未知参数: $1"
        echo "使用 -h 或 --help 查看帮助"
        exit 1
        ;;
esac